package com.csmz.enterprise.service.impl;

import com.csmz.common.utils.DateUtils;
import com.csmz.common.utils.SecurityUtils;
import com.csmz.enterprise.domain.CsmzEnterprise;
import com.csmz.enterprise.mapper.CsmzEnterpriseMapper;
import com.csmz.enterprise.service.ICsmzEnterpriseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 企业信息Service业务层处理
 * 
 * @author TT
 * @date 2025-09-16
 */
@Service
public class CsmzEnterpriseServiceImpl implements ICsmzEnterpriseService 
{
    @Autowired
    private CsmzEnterpriseMapper csmzEnterpriseMapper;

    /**
     * 查询企业信息
     * 
     * @param enterpriseId 企业信息主键
     * @return 企业信息
     */
    @Override
    public CsmzEnterprise selectCsmzEnterpriseByEnterpriseId(Long enterpriseId)
    {
        return csmzEnterpriseMapper.selectCsmzEnterpriseByEnterpriseId(enterpriseId);
    }

    /**
     * 查询企业信息列表
     * 
     * @param csmzEnterprise 企业信息
     * @return 企业信息
     */
    @Override
    public List<CsmzEnterprise> selectCsmzEnterpriseList(CsmzEnterprise csmzEnterprise)
    {
        return csmzEnterpriseMapper.selectCsmzEnterpriseList(csmzEnterprise);
    }

    /**
     * 新增企业信息
     * 
     * @param csmzEnterprise 企业信息
     * @return 结果
     */
    @Override
    public int insertCsmzEnterprise(CsmzEnterprise csmzEnterprise)
    {
        // 获取当前用户ID并设置
        Long userId = SecurityUtils.getUserId();
        csmzEnterprise.setUserId(userId);
        // 获取当前用户昵称
        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
        csmzEnterprise.setCreateBy(userName);
        // 获取当前时间
        csmzEnterprise.setCreateTime(DateUtils.getNowDate());
        return csmzEnterpriseMapper.insertCsmzEnterprise(csmzEnterprise);
    }

    /**
     * 修改企业信息
     * 
     * @param csmzEnterprise 企业信息
     * @return 结果
     */
    @Override
    public int updateCsmzEnterprise(CsmzEnterprise csmzEnterprise)
    {
        // 获取当前用户昵称
        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
        csmzEnterprise.setUpdateBy(userName);
        // 获取当前时间
        csmzEnterprise.setUpdateTime(DateUtils.getNowDate());
        return csmzEnterpriseMapper.updateCsmzEnterprise(csmzEnterprise);
    }

    /**
     * 批量删除企业信息
     * 
     * @param enterpriseIds 需要删除的企业信息主键
     * @return 结果
     */
    @Override
    public int deleteCsmzEnterpriseByEnterpriseIds(Long[] enterpriseIds)
    {
        return csmzEnterpriseMapper.deleteCsmzEnterpriseByEnterpriseIds(enterpriseIds);
    }

    /**
     * 删除企业信息信息
     * 
     * @param enterpriseId 企业信息主键
     * @return 结果
     */
    @Override
    public int deleteCsmzEnterpriseByEnterpriseId(Long enterpriseId)
    {
        return csmzEnterpriseMapper.deleteCsmzEnterpriseByEnterpriseId(enterpriseId);
    }

    /**
     * 查询我的企业信息列表
     * @param csmzEnterprise 企业信息
     * @return 企业信息集合
     */
    @Override
    public List<CsmzEnterprise> selectCsmzEnterpriseMyList(CsmzEnterprise csmzEnterprise) {
        // 获取当前用户ID并设置
        Long userId = SecurityUtils.getUserId();
        csmzEnterprise.setUserId(userId);
        return csmzEnterpriseMapper.selectCsmzEnterpriseList(csmzEnterprise);
    }

    /**
     * 新增我的企业信息
     * @param csmzEnterprise 企业信息
     * @return 结果
     */
    @Override
    public int insertMyCsmzEnterprise(CsmzEnterprise csmzEnterprise) {
        // 获取当前用户ID并设置
        Long userId = SecurityUtils.getUserId();
        csmzEnterprise.setUserId(userId);
        // 获取当前用户昵称
        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
        csmzEnterprise.setCreateBy(userName);
        // 获取当前时间
        csmzEnterprise.setCreateTime(DateUtils.getNowDate());
        return csmzEnterpriseMapper.insertMyCsmzEnterprise(csmzEnterprise);
    }

    /**
     *  修改我的企业信息
     * @param csmzEnterprise 企业信息
     * @return 结果
     */
    @Override
    public int updateMyCsmzEnterprise(CsmzEnterprise csmzEnterprise) {
        // 获取当前用户昵称
        String userName = SecurityUtils.getLoginUser().getUser().getNickName();
        csmzEnterprise.setUpdateBy(userName);
        // 获取当前时间
        csmzEnterprise.setUpdateTime(DateUtils.getNowDate());
        // 修改审核状态
        csmzEnterprise.setAuditStatus(0);
        return csmzEnterpriseMapper.updateCsmzEnterprise(csmzEnterprise);
    }

    /**
     * 获取认证结果
     * @param csmzEnterprise 企业信息
     * @return 认证结果 0-待审查 1-通过 2-拒绝
     */
    @Override
    public int getCertificationResult(CsmzEnterprise csmzEnterprise) {
        // 获取当前用户ID并设置
        Long userId = SecurityUtils.getUserId();
        csmzEnterprise.setUserId(userId);
        List<CsmzEnterprise> list = csmzEnterpriseMapper.selectCsmzEnterpriseList(csmzEnterprise);
        if (list !=null){
            return list.get(0).getAuditStatus();
        }
        return 4000;
    }
}
